package com.project.controller.web;

import com.project.common.utils.MyPageHelper;
import com.project.entity.PositionType;
import com.project.myBeans.R;
import com.project.myBeans.ResponseBean;
import com.project.service.PositionTypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Author: TateBrown
 * @date: 2018/5/27 15:54
 * @param:
 * @return:
 */
@EnableAutoConfiguration //自动载入应用程序所需的所有Bean
@RestController //@Controller与@ResponseBody的合并
@RequestMapping(value = "/PositionType")
@Api(description = "实习岗位类别",value = "PositionType")
public class PositionTypeController {
    @Autowired
    private PositionTypeService positionTypeService;
    /**
     * TateBrown 2018年5月27日
     *
     * @param
     * @return
     */
    @ApiOperation("查找所有实习岗位类别")
    @GetMapping("/findAll")
    public R findAll(){
        try{
            List<PositionType> positionTypes = positionTypeService.findAll();
            return R.ok("获取成功").put("data",positionTypes);
        }catch (Exception e){
            return R.error("程序异常");
        }
    }
    /**
     * TateBrown 2018年5月27日
     *
     * @param id
     * @return
     */
    @ApiOperation("根据id查找岗位类别")
    @GetMapping("/find/{id}")
    public R find(@PathVariable("id") Integer id){
        try{
            PositionType positionType = positionTypeService.findById(id);
          return R.ok("查找成功").put("data",positionType);
        }catch (Exception e){
          return R.error("程序异常");
        }
    }
    /**
     * TateBrown 2018年5月27日
     *
     * @param schoolId
     * @return
     */
    @ApiOperation("按照学院id查找岗位类别")
    @GetMapping("/findBatchBySchoolId/{schoolId}")
    public R findBatchBySchoolId(@PathVariable("schoolId") Integer schoolId){
        try {
            return R.ok("查找成功").put("data",positionTypeService.findBatchBySchoolId(schoolId));
        } catch (Exception e) {
            return R.error("程序异常");
        }
    }
    /**
     * TateBrown 2018年5月27日
     *
     * @param positionType
     * @return
     */
    @ApiOperation("添加一个岗位类别")
    @PostMapping("/addOne")
    public R addOne(@RequestBody PositionType positionType){
        try {
            if (positionTypeService.checkTypenameIsExist(positionType.getTypename(), positionType.getSchoolid())){
               return R.error("岗位已存在");
            }
            else {
                positionTypeService.addOne(positionType);
                return R.ok("添加成功");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return R.error("程序异常");
        }
    }
    /**
     * TateBrown 2018年5月27日
     *
     * @param id
     * @return
     */
    @ApiOperation("添加一个岗位类别")
    @GetMapping("/deleteOneById/{id}")
    public R deleteOneById(@PathVariable("id") Integer id){
        try {
            if (positionTypeService.delete(id) > 0){
                return R.ok("删除成功");
            }
            else{
               return R.error("删除失败");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return R.error("程序异常");
        }
    }

    /**
     * TateBrown 2018年5月27日
     *
     * @param positionType
     * @return
     */
    @ApiOperation("[条件][分页]查找岗位类别")
    @PostMapping("/findBatchByCondition")
    public R findBatchByCondition(@RequestBody PositionType positionType){
        try {
            positionType.setPageIndex(positionType.getPageIndex() - 1);
            List<PositionType> positionTypeList = positionTypeService.findBatchByCondition(positionType);
            return R.ok("查找成功").put("data",positionTypeList).put("total", MyPageHelper.getTotal(positionTypeList));
        } catch (Exception e) {
            e.printStackTrace();
           return R.error("程序异常");
        }
    }
    /**
     * TateBrown 2018年5月27日
     *
     * @param positionType
     * @return
     */
    @ApiOperation("修改一个岗位类别")
    @PostMapping("/modifyOneById")
    public R modifyOneById(@RequestBody PositionType positionType){
        try {
            if(positionTypeService.checkTypenameIsExist(positionType.getTypename(), positionType.getSchoolid())){
              return R.error("岗位已存在");
            }
            else {
                positionTypeService.update(positionType);
             return R.ok("修改成功");
            }
        } catch (Exception e) {
            e.printStackTrace();
        return R.error("程序异常");
        }
    }
}
